﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
   public partial  class Empleado
    {
          //public bool add(dbGestionDataContext _db,
          //       string descripcion,
          //       string nombre,
          //       string atte,
          //       string apePaterno,
          //      string apeMaterno,
          //      string dni,
          //      string usuario,
          //      string password,
          //      string telefono,
          //      string fax,
          //      string email,
          //       bool inActivo,
          //       bool tieneAcceso, int idUsuarioCre, string usuarioCre)

          //                  {

          //                  this.descripcion=descripcion;
          //                  this.nombre=nombre;
          //                  this.atte = atte;
          //                  this.apePaterno=apePaterno;
          //                  this.apeMaterno=apeMaterno;
          //                  this.dni=dni;
          //                  this.password=password;
          //                  this.telefono=telefono;
          //                  this.fax=fax;
          //                  this.email=email;
          //                  this.usuario = usuario;
          //                  this.inActivo=inActivo;
                            
          //                  this.tieneAcceso=tieneAcceso;
          //                  this.direccion = "";

          //                  ///informacion de modulos   que tiene acceso
          //                  this.bitAdmin = false;  //todos los nuevos
                           
                            
          //                  //auditoria
          //                  this.fechaCre=DateTime.Now;
          //                  this.fechaMod=DateTime.Now;
          //                  this.idUsuarioCre = idUsuarioCre;
          //                  this.idUsuarioMod = idUsuarioCre;
          //                  //this.ucuarioCre = usuarioCre;
          //                  //this.usuarioMod = usuarioCre;
                            
    

                        
          //                    _db.Empleados.InsertOnSubmit(this);
          //                    _db.SubmitChanges();
    
          //                  return true;

          //                  }



          public bool add(dbGestionDataContext _db,
                   string descripcion,
                   string nombre,
                   string atte,
                   string apePaterno,
                  string apeMaterno,
                  string dni,
                  string telefono,
                  string fax,
                  string email,
                  bool inActivo,
                  int idUsuarioCre,
                  string direccion,
                  string usuarioCre)
          {

              this.descripcion = descripcion;
              this.nombre = nombre;
              this.atte = atte;
              this.apePaterno = apePaterno;
              this.apeMaterno = apeMaterno;
              this.dni = dni;
              this.password = password;
              this.telefono = telefono;
              this.fax = fax;
              this.email = email;
              this.inActivo = inActivo;
              this.direccion = "";

              ///informacion de modulos   que tiene acceso
              //this.bitAdmin = false;  //todos los nuevos
              //this.setUpdateAccesoModulo(false, false, false,false);
              //this.setUpdateAprobarOC(false, 0);
              //this.setUpdateUsuario("", "", false, false);


              //auditoria
              this.fechaCre = DateTime.Now;
              this.fechaMod = DateTime.Now;
              this.idUsuarioCre = idUsuarioCre;
              this.idUsuarioMod = idUsuarioCre;
              this.usuarioCre = usuarioCre;
              this.usuarioMod= usuarioCre;
              

              _db.Empleados.InsertOnSubmit(this);
              _db.SubmitChanges();

              return true;

          }



          public void  setUpdateUsuario(string usuario,
                                        string password,
                                        bool tieneAcceso,
                                        bool bitAdminsitrador)
          {
            this.usuario = usuario;
            this.password = password;
            this.tieneAcceso = tieneAcceso;
            this.bitAdmin = bitAdminsitrador;

          }



       //public bool update(dbGestionDataContext _db,
                         
       //                    string descripcion,
       //                    string nombre,
       //                    string atte,
       //                    string apePaterno,
       //                    string apeMaterno,
       //                    string dni,
       //                    string usuario,
       //                    string telefono,
       //                    string fax,
       //                    string email,
       //                    bool inActivo,
       //                    bool tieneAcceso,
       //                    string passwordplant,
       //                    string FirmaEmpleado)
       //                {

           
       //             this.descripcion = descripcion;
       //             this.nombre = nombre;
       //             this.atte = atte;
       //             this.apePaterno = apePaterno;
       //             this.apeMaterno = apeMaterno;
       //             this.dni = dni;
       //             this.usuario = usuario;
       //             this.telefono = telefono;
       //             this.fax = fax;
       //             this.email = email;
       //             this.inActivo = inActivo;
       //             this.fechaMod = DateTime.Now;
       //             this.tieneAcceso = tieneAcceso;
       //             this.usuarioMod = usuarioMod;
       //             this.password = passwordplant;
       //             this.firma = FirmaEmpleado;
                   
       //             this.direccion = "";
       //    _db.SubmitChanges();
       //  return true;
       //}


       public bool update(string descripcion,
                           string nombre,
                           string atte,
                           string apePaterno,
                           string apeMaterno,
                           string dni,
                           string telefono,
                           string fax,
                           string email,
                           bool inActivo,
                           int idusuarioMod,
                           string direccion,           
                           string usuarioMod)
       {


           this.descripcion = descripcion;
           this.nombre = nombre;
           this.atte = atte;
           this.apePaterno = apePaterno;
           this.apeMaterno = apeMaterno;
           this.dni = dni;
           this.usuario = usuario;
           this.telefono = telefono;
           this.fax = fax;
           this.email = email;
           this.inActivo = inActivo;
           this.fechaMod = DateTime.Now;
          // this.tieneAcceso = tieneAcceso;
           this.idUsuarioMod = idUsuarioMod;
           this.usuarioMod = usuarioMod; //usuarioMod;
           


           this.direccion = direccion;

          
           return true;
       }

       public void setUpdateAprobarOC(bool bitAprobarOC, 
                                   decimal montoAprobacion,
                                    int idMoneda)
       {
           this.bitAprobarOC = bitAprobarOC;
           this.montoAprobraOC = montoAprobacion;
           this.idMoneda = idMoneda;

       }

       public void setUpdateAccesoModulo(bool bitModuloAlmacen,
                                       bool bitModuloCompra,
                                       bool bitModuloVenta)
       {
           this.bitModuloAlmacen = bitModuloAlmacen;
           this.bitModuloCompra = bitModuloCompra;
           this.bitModuloVenta = bitModuloVenta;
         //  this.bitAdmin = bitAdmin;
           //,
            //bool bitAdministrador

       }


       public void setUpdateFirma(string firma)
       {
           this.firma = firma;
       }



public int getidAnterior(dbGestionDataContext _db, int idinternal)
{
    int intAnterior = 0;


    var id = from i in _db.Empleados
             where i.idInternal < idinternal
             select i;


    if (id.Count() > 0)
    {
        intAnterior = id.Max(p=>p.idInternal);

    }
    else
    {
        throw new Exception("No existe Registros");
    }


    return intAnterior;

}

public int getidSiguiente(dbGestionDataContext _db, int idinternal)
{
    int intSiguiente = 0;

    //revisar la sentencia generada
    var id = from i in _db.Empleados
             where i.idInternal > idinternal
             select i;


    if (id.Count() > 0)
    {
        intSiguiente = id.Min(p=>p.idInternal);

    }
    else
    {
        throw new Exception("No existe Registros");
    }

    return intSiguiente;
}

    }
}
